{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d6c422b4",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "246cd9d4",
   "metadata": {},
   "outputs": [],
   "source": [
    "import jieba"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "6b959afb",
   "metadata": {},
   "outputs": [],
   "source": [
    "import fasttext"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "c2074c1f",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning : `load_model` does not return WordVectorModel or SupervisedModel any more, but a `FastText` object which is very similar.\n"
     ]
    }
   ],
   "source": [
    "fasttext_model = fasttext.load_model('../../dataset/fastText/cc.zh.300.bin')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c42f76fb",
   "metadata": {},
   "outputs": [],
   "source": [
    "cat_uy2cn_df = pd.read_csv('../datasets/商品分类关键词_维汉对照.csv', encoding='utf-8-sig', header=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e71c61cc",
   "metadata": {},
   "outputs": [],
   "source": [
    "cat_cn_df = pd.read_csv('../datasets/商品分类关键词_汉语.csv', encoding='utf-8-sig', header=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "b6d1a47a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>keywords_uy</th>\n",
       "      <th>keywords_cn</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>ماللار تۈرى</td>\n",
       "      <td>货品</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>ئۆي جابدۇقلىرى</td>\n",
       "      <td>家具</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>شەخسىي ساغلاملىق</td>\n",
       "      <td>个人健康</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>كىيىم-زىبۇزىننەت</td>\n",
       "      <td>服饰</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>ئېلېكتىر سايمانلىرى</td>\n",
       "      <td>电器</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           keywords_uy keywords_cn\n",
       "0          ماللار تۈرى          货品\n",
       "1       ئۆي جابدۇقلىرى          家具\n",
       "2     شەخسىي ساغلاملىق        个人健康\n",
       "3     كىيىم-زىبۇزىننەت          服饰\n",
       "4  ئېلېكتىر سايمانلىرى          电器"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cat_uy2cn_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "82ca956a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 生成维语对照的关键词列表\n",
    "keywords_uy = cat_uy2cn_df['keywords_uy'].tolist()\n",
    "keywords_cn = cat_uy2cn_df['keywords_cn'].tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "424784f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['ماللار تۈرى',\n",
       " 'ئۆي جابدۇقلىرى',\n",
       " 'شەخسىي ساغلاملىق',\n",
       " 'كىيىم-زىبۇزىننەت',\n",
       " 'ئېلېكتىر سايمانلىرى']"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "keywords_uy[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "5adf2293",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['货品', '家具', '个人健康', '服饰', '电器']"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "keywords_cn[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "12be9b6e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 生成汉语的关键词列表\n",
    "keywords_cn2 = cat_cn_df['keywords'].tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "169d0c8d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['游戏话费', '服装鞋包', '手机数码', '家用电器', '美妆饰品']"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "keywords_cn2[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "0fd88538",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 获取单词词向量\n",
    "def get_word_vector(word, model=fasttext_model):\n",
    "\n",
    "    word_vector = model.get_word_vector(word)\n",
    "\n",
    "    return word_vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "c34b9a51",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 获取某句句向量\n",
    "def get_sentence_vector(sentence):\n",
    "\n",
    "    cut_words = jieba.lcut(sentence)\n",
    "\n",
    "    sentence_vector = None\n",
    "    \n",
    "    for word in cut_words:\n",
    "        word_vector = get_word_vector(word)\n",
    "\n",
    "        if sentence_vector is not None:\n",
    "            sentence_vector += word_vector\n",
    "        else:\n",
    "            sentence_vector = word_vector\n",
    "\n",
    "    sentence_vector = sentence_vector / len(cut_words)\n",
    "\n",
    "    return sentence_vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "6a7e3304",
   "metadata": {},
   "outputs": [],
   "source": [
    "def cos_sim(vector_a, vector_b):\n",
    "    \"\"\"\n",
    "    计算两个向量之间的余弦相似度\n",
    "    :param vector_a: 向量 a\n",
    "    :param vector_b: 向量 b\n",
    "    :return: sim\n",
    "    \"\"\"\n",
    "    vector_a = np.mat(vector_a)\n",
    "    vector_b = np.mat(vector_b)\n",
    "    num = float(vector_a * vector_b.T)\n",
    "    denom = np.linalg.norm(vector_a) * np.linalg.norm(vector_b)\n",
    "    cos = num / denom\n",
    "    sim = 0.5 + 0.5 * cos\n",
    "    return sim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "0d2f658a",
   "metadata": {},
   "outputs": [],
   "source": [
    "uy_cn_keymap = []\n",
    "uy_cn_unkeymap = []"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "2b56d188",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "كىيىم-زىبۇزىننەت 服饰\n",
      "ئېلېكتىر سايمانلىرى 电器\n",
      "تۇرمۇش ئېلىكتىربۇيۇم 生活电器\n",
      "باشقىلار 其他\n",
      "ھەۋەس بۇيۇمى 情趣用品\n",
      "ئەرەنچە كىيىم 男装\n",
      "قوش قاپاق چاپلىقى 双眼皮贴\n",
      "تەنھەرىكەت يۈرۈشلىكى 运动套装\n",
      "يانفون سەپلىمىلىرى 手机配件\n",
      "چوڭ ئائىلە ئېلىكتىرل 大家电\n",
      "تازىلاش سۇيۇقلىقى 清洗液\n",
      "ئېغىز ئاسراش 口腔护理\n",
      "پورتمال 钱包\n",
      "پادىچىلار ئىشتىنى 牛仔裤\n",
      "خۇرۇم ئاياق 皮鞋\n",
      "كۇسار 内裤\n",
      "تەنھەرىكەت ئايىقى 运动鞋\n",
      "كۆڭلەك 衬衫\n",
      "قاچا-قۇچا 餐具\n",
      "بۇرۇلكا 裤子\n",
      "تارتىم قەغەز 抽纸\n",
      "يۆگىمە قەغەز 卷筒纸\n",
      "كىيىم ئاسقۇسى 衣架\n",
      "چىنە-چەينەك 茶具\n",
      "تازىلىق قەغىزى 卫生纸\n",
      "چاچ ئاسراش 护发\n",
      "كۆز مەلھىمى/چاپلاق 眼霜\n",
      "خۇۇرم چاپان 皮衣\n",
      "چەتئەل ھارىقى 洋酒\n",
      "كۆينەك 衬衫\n",
      "ئاياق ئىشكابى 鞋柜\n",
      "بەدەن يۇيۇش سۇيۇقلىق 沐浴露\n",
      "تەنزەرىكەت ئايىقى 运动鞋\n",
      "قوش مۈرىلىك سومكا 双肩背包\n",
      "كاستۇم 西服\n",
      "خۇرۇم چاپان 皮衣\n",
      "پوپايكا 毛衣\n",
      "ئىشتان 裤子\n",
      "سۈت قاچىسى 奶瓶\n",
      "كاناپ ئاياق 帆布鞋\n",
      "توكلۇق ئويۇنچۇق 电动玩具\n",
      "ساپما ئاياق 拖鞋\n",
      "كوپتا 衬衫\n",
      "مامۇق چاپان 羽绒服\n",
      "كۆپتۈرمە يېمەكلىك 膨化食品\n",
      "ھامىلدارلار كىيىمى 孕妇装\n",
      "ئىستاكان 茶杯\n",
      "نوركا 皮草\n",
      "مېۋە-چىۋىلەر 水果\n",
      "قەلەم تۈرى 笔类\n",
      "ئۈزۈم ھارىقى 葡萄酒\n",
      "ھەسەل 蜂蜜\n",
      "سۈنئىي چاچ 假发\n",
      "باشقا ھاراق تۈرىدىكىلەر 其他酒类\n",
      "تەنھەرىكەت ئىشتىنى 运动裤\n",
      "بەل سومكىسى 腰包\n",
      "يازلىق ئاياق 凉鞋\n",
      "باسنۇشكا 凉鞋\n",
      "ساپما كەش 拖鞋\n",
      "قورۇما قازىنى 炒锅\n",
      "ئەرلەر كىيمى 男装\n",
      "پايپاق 袜子\n",
      "ساپما ئاياق/ساپما كە 拖鞋\n",
      "پاختىلىق چاپان/مامۇق 棉衣\n",
      "سۈت مەھسۇلاتلىرى 乳制品\n",
      "ئاق ھاراق 白酒\n",
      "پىرىسلاش خالتىسى 压缩袋\n",
      "يوپكا 裙子\n",
      "جىلىتكە 马甲\n",
      "پىۋە 啤酒\n",
      "سوكنا چاپان 毛呢外套\n",
      "پاختا ئاياغ 棉鞋\n",
      "گىرىم بۇيۇملىرى 化妆品\n",
      "زىبۇزىننەت 奢侈品\n",
      "ئويۇنچۇق 玩具\n",
      "ئىچىملىك 饮料\n",
      "ئائىلە ئيليكتىر سايمانلىرى 家用电器\n",
      "گىىرم بۇيۇملىرى 化妆品\n",
      "ئەتىرلەر 香水\n",
      "زىبۇ-زىننەت بۇيۇملىر 奢侈品\n",
      "ئۈستى كىيىم 上衣\n",
      "پەرداز بۇيۇملىرى 化妆品\n",
      "بەدەن چېنىقتۇرۇش 健身\n",
      "چاي ئىچىملىك 茶饮料\n",
      "تازىلاش بۇيۇملىرى 清洁用品\n",
      "ئۇششاق يىمەكلىك 零食\n",
      "چىنە-چەينەكلەر 茶具\n",
      "كاستۇم-بۇرۇلكا 西服\n",
      "كارۋات بۇيۇملىرى 床上用品\n",
      "بوۋاقلار بۇيۇملىرى 婴儿用品\n",
      "چىنە -قاچا 餐具\n",
      "ئېغىز بوشلۇقى ئاسراش 口腔护理\n",
      "كۆڭۆل ئېچىش 娱乐\n",
      "چاي 茶\n",
      "تېلېفون زاپچاس 电话配件\n",
      "كومپيوتېر 计算机\n",
      "ئېلېكترونلۇق مائارىپ 电子教育\n",
      "كىتاب 书\n",
      "ئائىلە ئېلىكتىرلىرى 家用电器\n",
      "يوپكا-كۆڭلەك 裙子\n",
      "جوڭگو كۆچمە خەۋەرلى 中国移动\n",
      "شىرنە چىقىرىش ماشىنى 榨汁机\n",
      "سۇ ئىسسىتقۇچ 热水器\n",
      "تېلېفون 电话\n",
      "كىرئالغۇ 洗衣机\n",
      "توك دۇخوپكىسى 电烤箱\n",
      "ساقال ئالغۇچ 剃须刀\n",
      "مىللىيچە كىيىم 民族服装\n",
      "ھاۋا تەڭشىگۈچ 空调\n",
      "توڭلاتقۇ 冰箱\n",
      "ئاپتوموبىل 汽车\n",
      "كومپيۇتېر 计算机\n",
      "تىڭشىغۇچ 听诊器\n",
      "ھەۋەس قوزغاش ئىچ كىيىمى 情趣内衣\n",
      "ھەۋەس بۇيۇملىرى 情趣用品\n",
      "OPPO OPPO\n",
      "توكلۇق دۈملەش قازىنى 电蒸锅\n",
      "توي كۆينىكى 婚纱\n",
      "دېزىنفېكسىيە ئىشكاپى 消毒柜\n",
      "چاڭ-توزان سۈمۈرگۈچ 吸尘器\n",
      "ماسكا 口罩\n",
      "قاچا يۇيۇش ماشىنىسى 洗碗机\n",
      "ھۆسن تۈزەش سايمانلىر 美容工具\n",
      "توك چۆگۈن 电热水壶\n",
      "ھۆسن گۈزەللەشتۈرۈش 美容\n",
      "تېرمومېتر 温度计\n",
      "3C 3C\n",
      "TV TV\n"
     ]
    }
   ],
   "source": [
    "# 遍历计算匹配相同的中文文本，建立 维语-中文映射\n",
    "for uy, cn in zip(keywords_uy, keywords_cn):\n",
    "    get_same_flag = 0\n",
    "    for cn2 in keywords_cn2:\n",
    "        if cn == cn2:\n",
    "            uy_cn_keymap.append([uy, cn])\n",
    "            print(uy, cn)\n",
    "            get_same_flag = 1\n",
    "            break\n",
    "    if get_same_flag == 0:\n",
    "        uy_cn_unkeymap.append([uy, cn])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "048b455a",
   "metadata": {},
   "outputs": [],
   "source": [
    "uy_cn_keymap = uy_cn_keymap[:-2]\n",
    "uy_cn_keymap_df = pd.DataFrame(uy_cn_keymap)\n",
    "uy_kv = uy_cn_keymap_df[0].tolist()\n",
    "cn_kv = uy_cn_keymap_df[1].tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "7e8f0c71",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 相同词汇对齐\n",
    "keywords_cn2_uy_align = []\n",
    "\n",
    "for word in keywords_cn2:\n",
    "    flag = 0\n",
    "    for word2 in cn_kv:\n",
    "        if word == word2:\n",
    "            if word != keywords_cn2_uy_align[-1][0]:\n",
    "                keywords_cn2_uy_align.append([word])\n",
    "            keywords_cn2_uy_align[-1].append(uy_kv[cn_kv.index(word)])\n",
    "            flag = 1\n",
    "    if flag == 0:\n",
    "        keywords_cn2_uy_align.append([word, None])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "536880a4",
   "metadata": {},
   "outputs": [],
   "source": [
    "keywords_cn2_uy_align_df = pd.DataFrame(keywords_cn2_uy_align)\n",
    "keywords_cn2_uy_align_df.columns =['keywords_cn','keywords_uy1','keywords_uy2','keywords_uy3']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "81412e27",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>keywords_cn</th>\n",
       "      <th>keywords_uy1</th>\n",
       "      <th>keywords_uy2</th>\n",
       "      <th>keywords_uy3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>游戏话费</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>服装鞋包</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>手机数码</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>家用电器</td>\n",
       "      <td>ئائىلە ئيليكتىر سايمانلىرى</td>\n",
       "      <td>ئائىلە ئيليكتىر سايمانلىرى</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>美妆饰品</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  keywords_cn                keywords_uy1                keywords_uy2  \\\n",
       "0        游戏话费                        None                        None   \n",
       "1        服装鞋包                        None                        None   \n",
       "2        手机数码                        None                        None   \n",
       "3        家用电器  ئائىلە ئيليكتىر سايمانلىرى  ئائىلە ئيليكتىر سايمانلىرى   \n",
       "4        美妆饰品                        None                        None   \n",
       "\n",
       "  keywords_uy3  \n",
       "0         None  \n",
       "1         None  \n",
       "2         None  \n",
       "3         None  \n",
       "4         None  "
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "keywords_cn2_uy_align_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "e156154b",
   "metadata": {},
   "outputs": [],
   "source": [
    "keywords_uy2 = keywords_cn2_uy_align_df['keywords_uy1'].tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1dfd0842",
   "metadata": {},
   "outputs": [],
   "source": [
    "uy_cn_keymap_sim = []\n",
    "uy_cn_unkeymap_sim = []\n",
    "\n",
    "# 遍历计算匹配最相似的中文文本，建立 维语-中文映射\n",
    "for uy, cn in uy_cn_unkeymap:\n",
    "    a = get_sentence_vector(cn)\n",
    "    max_sim = 0\n",
    "    most_sim_word = ''\n",
    "    for i, cn2 in enumerate(keywords_cn2):\n",
    "        if keywords_uy2[i] != None:  # 相同元素剪枝\n",
    "            print(cn2, ': 存在相同翻译')\n",
    "            continue\n",
    "        else:\n",
    "            print(cn2)\n",
    "            b = get_sentence_vector(cn2)\n",
    "            cossim = cos_sim(a, b)\n",
    "            # print(cossim, max_sim)\n",
    "            if cossim > max_sim:\n",
    "                # print(max_sim, cos_sim(a,b), cn, cn2)\n",
    "                most_sim_word = cn2\n",
    "                max_sim = cossim\n",
    "                if max_sim >= 0.8:\n",
    "                    uy_cn_keymap_sim.append([uy, cn, most_sim_word, max_sim])\n",
    "                    print(uy, cn, most_sim_word, max_sim)\n",
    "    if max_sim < 0.8:\n",
    "        uy_cn_unkeymap_sim.append([uy, cn, most_sim_word, max_sim])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "40fc4649",
   "metadata": {},
   "outputs": [],
   "source": [
    "# # 遍历计算匹配最相似的中文文本，建立 维语-中文映射\n",
    "# for uy, cn in zip(keywords_uy, keywords_cn):\n",
    "#     a = get_sentence_vector(cn)\n",
    "#     max_sim = 0\n",
    "#     most_sim_word = ''\n",
    "#     for cn2 in keywords_cn2:\n",
    "#         b = get_sentence_vector(cn2)\n",
    "#         if cos_sim(a, b) > max_sim:\n",
    "#             # print(max_sim, cos_sim(a,b), cn, cn2)\n",
    "#             most_sim_word = cn2\n",
    "#             max_sim = cos_sim(a, b)\n",
    "#             if max_sim >= 0.8:\n",
    "#                 uy_cn_keymap.append([uy, cn, most_sim_word, max_sim])\n",
    "#                 print(uy, cn, most_sim_word, max_sim)\n",
    "#     if max_sim < 0.8:\n",
    "#         uy_cn_unkeymap.append([uy, cn, most_sim_word, max_sim])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "381a264a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9581f69d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5e1d0b4f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "8f6ab731",
   "metadata": {},
   "outputs": [],
   "source": [
    "keywords_uy2cn_df.to_csv('../datasets/123.csv', encoding='utf-8-sig', header=0, index = False)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.7",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
